{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "<p align=\"center\">\n",
    "    <img src=\"https://github.com/GeostatsGuy/GeostatsPy/blob/master/TCG_color_logo.png?raw=true\" width=\"220\" height=\"240\" />\n",
    "\n",
    "</p>\n",
    "\n",
    "## Data Analytics \n",
    "\n",
    "### Distribution Transformations in Python \n",
    "\n",
    "\n",
    "#### Michael Pyrcz, Associate Professor, The University of Texas at Austin \n",
    "\n",
    "##### [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data Analytics: Distribution Transformations\n",
    "\n",
    "Here's a demonstration of making and general use of distribution transformations in Python. This demonstration is part of the resources that I include for my courses in Spatial / Subsurface Data Analytics at the Cockrell School of Engineering at the University of Texas at Austin.  \n",
    "\n",
    "#### Distribution Transformations\n",
    "\n",
    "Why do we do this?\n",
    "\n",
    "* **Inference**: variable has expected shape \n",
    "\n",
    "* **Data Preparation / Cleaning**: correcting for too few data and outliers\n",
    "\n",
    "* **Theory**: a specific distribution assumption required for a method\n",
    "\n",
    "How do we do it?\n",
    "\n",
    "We apply this to all sample data, $x_{\\alpha}$ $\\forall$ $\\alpha = 1,\\ldots,n$.\n",
    "\n",
    "\\begin{equation}\n",
    "y_{\\alpha} = G^{-1}_Y\\left(F_X(x_{\\alpha})\\right)\n",
    "\\end{equation}\n",
    "\n",
    "were $X$ is the original feature with a $F_X$ original cumulative distribution function and $Y$ is transformed feature with a $G_Y$ transformed cumulative distribution function.\n",
    "\n",
    "* Mapping from one distribution to another through percentiles\n",
    "\n",
    "* This may be applied to any parametric or nonparametric distributions\n",
    "\n",
    "* This is a rank preserving transform, e.g. P50 of 𝑋 is P50 of 𝑌\n",
    "\n",
    "I have a lecture on distribution transformations available on [YouTube](https://www.youtube.com/watch?v=ZDIpE3OkAIU&list=PLG19vXLQHvSB-D4XKYieEku9GQMQyAzjJ&index=14).   \n",
    "\n",
    "#### Getting Started\n",
    "\n",
    "Here's the steps to get setup in Python with the GeostatsPy package:\n",
    "\n",
    "1. Install Anaconda 3 on your machine (https://www.anaconda.com/download/). \n",
    "2. From Anaconda Navigator (within Anaconda3 group), go to the environment tab, click on base (root) green arrow and open a terminal. \n",
    "3. In the terminal type: pip install geostatspy. \n",
    "4. Open Jupyter and in the top block get started by copy and pasting the code block below from this Jupyter Notebook to start using the geostatspy functionality. \n",
    "\n",
    "You will need to copy the data file to your working directory.  They are available here:\n",
    "\n",
    "* Tabular data - [sample_data.csv](https://github.com/GeostatsGuy/GeoDataSets/blob/master/sample_data.csv).\n",
    "\n",
    "#### Importing Packages\n",
    "\n",
    "We will need some standard packages. These should have been installed with Anaconda 3."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np                        # ndarrys for gridded data\n",
    "import pandas as pd                       # DataFrames for tabular data\n",
    "import os                                 # set working directory, run executables\n",
    "import matplotlib.pyplot as plt           # plotting\n",
    "from scipy import stats                   # summary statistics\n",
    "import math                               # trigonometry etc.\n",
    "import scipy.signal as signal             # kernel for moving window calculation\n",
    "import random                             # randon numbers\n",
    "import seaborn as sns                     # matrix scatter plots\n",
    "from scipy.stats import norm              # Gaussian parametric distribution\n",
    "from sklearn import preprocessing\n",
    "import geostatspy.GSLIB as GSLIB\n",
    "from ipywidgets import interactive                      # widgets and interactivity\n",
    "from ipywidgets import widgets                            \n",
    "from ipywidgets import Layout\n",
    "from ipywidgets import Label\n",
    "from ipywidgets import VBox, HBox"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Set the Random Number Seed\n",
    "\n",
    "Set the random number seed so that we have a repeatable workflow"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "seed = 73073"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Set the Working Directory\n",
    "\n",
    "I always like to do this so I don't lose files and to simplify subsequent read and writes (avoid including the full address each time). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#os.chdir(\"c:/PGE383\")                     # set the working directory"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Loading Tabular Data\n",
    "\n",
    "Here's the command to load our comma delimited data file in to a Pandas' DataFrame object.  For fun try misspelling the name. You will get an ugly, long error.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "#df = pd.read_csv('sample_data.csv')     # load our data table\n",
    "df = pd.read_csv('https://raw.githubusercontent.com/GeostatsGuy/GeoDataSets/master/sample_data.csv') # load from Dr. Pyrcz's GitHub repository"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It worked, we loaded our file into our DataFrame called 'df'. But how do you really know that it worked? Visualizing the DataFrame would be useful and we already leard about these methods in this demo (https://git.io/fNgRW). \n",
    "\n",
    "We can preview the DataFrame by printing a slice or by utilizing the 'head' DataFrame member function (with a nice and clean format, see below). With the slice we could look at any subset of the data table and with the head command, add parameter 'n=13' to see the first 13 rows of the dataset.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X</th>\n",
       "      <th>Y</th>\n",
       "      <th>Facies</th>\n",
       "      <th>Porosity</th>\n",
       "      <th>Perm</th>\n",
       "      <th>AI</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>100.0</td>\n",
       "      <td>900.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.100187</td>\n",
       "      <td>1.363890</td>\n",
       "      <td>5110.699751</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>100.0</td>\n",
       "      <td>800.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.107947</td>\n",
       "      <td>12.576845</td>\n",
       "      <td>4671.458560</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>100.0</td>\n",
       "      <td>700.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.085357</td>\n",
       "      <td>5.984520</td>\n",
       "      <td>6127.548006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>100.0</td>\n",
       "      <td>600.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.108460</td>\n",
       "      <td>2.446678</td>\n",
       "      <td>5201.637996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>100.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.102468</td>\n",
       "      <td>1.952264</td>\n",
       "      <td>3835.270322</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>100.0</td>\n",
       "      <td>400.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.110579</td>\n",
       "      <td>3.691908</td>\n",
       "      <td>5295.267191</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       X      Y  Facies  Porosity       Perm           AI\n",
       "0  100.0  900.0     1.0  0.100187   1.363890  5110.699751\n",
       "1  100.0  800.0     0.0  0.107947  12.576845  4671.458560\n",
       "2  100.0  700.0     0.0  0.085357   5.984520  6127.548006\n",
       "3  100.0  600.0     0.0  0.108460   2.446678  5201.637996\n",
       "4  100.0  500.0     0.0  0.102468   1.952264  3835.270322\n",
       "5  100.0  400.0     0.0  0.110579   3.691908  5295.267191"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(n=6)                           # we could also use this command for a table preview"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Calculating and Plotting a CDF by Hand\n",
    "\n",
    "Let's demonstrate the calculation and plotting of a non-parametric CDF by hand\n",
    "\n",
    "1. make a copy of the feature as a 1D array (ndarray from NumPy)\n",
    "2. sort the data in ascending order\n",
    "3. assign cumulative probabilities based on the tail assumptions\n",
    "4. plot cumuative probability vs. value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The ndarray has a shape of (261,).\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "por = df['Porosity'].copy(deep = True).values # make a deepcopy of the feature from the DataFrame\n",
    "print('The ndarray has a shape of ' + str(por.shape) + '.')\n",
    "\n",
    "por = np.sort(por)                           # sort the data in ascending order\n",
    "n = por.shape[0]                             # get the number of data samples\n",
    "\n",
    "cprob = np.zeros(n)\n",
    "for i in range(0,n):\n",
    "    index = i + 1\n",
    "    cprob[i] = index / n                     # known upper tail\n",
    "    # cprob[i] = (index - 1)/n               # known lower tail\n",
    "    # cprob[i] = (index - 1)/(n - 1)         # known upper and lower tails\n",
    "    # cprob[i] = index/(n+1)                 # unknown tails  \n",
    "\n",
    "plt.subplot(111)\n",
    "plt.plot(por,cprob, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "plt.scatter(por,cprob,s = 30, alpha = 1.0, c = 'red', edgecolor = 'black') # plot the CDF points\n",
    "plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"Non-parametric Porosity Cumulative Distribution Function\")\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=1.0, top=1.2, wspace=0.1, hspace=0.2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Transformation to a Parametric Distribution\n",
    "\n",
    "We can transform our data feature distribution to any parametric distribution with this workflow.\n",
    "\n",
    "1. Calculate the cumulative probability value of each of our data values, $p_{\\alpha} = F_x(x_\\alpha)$, $\\forall$ $\\alpha = 1,\\ldots, n$.\n",
    "\n",
    "2. Apply the inverse of the target parametric cumulative distribution function (CDF) to calculate the transformed values. $y_{\\alpha} = G_y^{-1}\\left(F_x(x_\\alpha)\\right)$, $\\forall$ $\\alpha = 1,\\ldots, n$.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y = np.zeros(n)\n",
    "\n",
    "for i in range(0,n):\n",
    "    y[i] = norm.ppf(cprob[i],loc=0.0,scale=1.0)\n",
    "\n",
    "plt.subplot(121)\n",
    "plt.plot(por,cprob, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "plt.scatter(por,cprob,s = 30, alpha = 1.0, c = 'red', edgecolor = 'black') # plot the CDF points\n",
    "plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"Non-parametric Porosity Cumulative Distribution Function\")\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(y,cprob, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "plt.scatter(y,cprob,s = 30, alpha = 1.0, c = 'blue', edgecolor = 'black') # plot the CDF points\n",
    "plt.grid(); plt.xlim([-3.0,3.0]); plt.ylim([0.0,1.0])\n",
    "plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"After Distribution Transformation to Gaussian\")\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=2.0, top=1.2, wspace=0.2, hspace=0.2)\n",
    "plt.show()\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's make an interactive version of this plot to visualize the transformation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# widgets and dashboard\n",
    "l = widgets.Text(value='                                                  Data Analytics, Distribution Transformation, Prof. Michael Pyrcz, The University of Texas at Austin',layout=Layout(width='950px', height='30px'))\n",
    "\n",
    "data_index = widgets.IntSlider(min=1, max = n-1, value=1.0, step = 1.0, description = 'Data Index, $\\\\alpha$',orientation='horizontal', style = {'description_width': 'initial'}, continuous_update=False)\n",
    "\n",
    "ui = widgets.VBox([l,data_index],)\n",
    "\n",
    "def run_plot(data_index):                       # make data, fit models and plot\n",
    "    plt.subplot(131)\n",
    "    plt.plot(por,cprob, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "    plt.scatter(por,cprob,s = 20, alpha = 1.0, c = 'red', edgecolor = 'black') # plot the CDF points\n",
    "    plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "    plt.xlabel(\"Original Feature, $x$\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"CDF Original Feature\")\n",
    "    plt.plot([por[data_index-1],por[data_index-1]],[0.0,cprob[data_index-1]],color = 'red',linestyle='dashed')\n",
    "    plt.plot([por[data_index-1],3.0],[cprob[data_index-1],cprob[data_index-1]],color = 'red',linestyle='dashed')\n",
    "    plt.scatter(por[data_index-1],0,marker='s',s = 100, c = 'red', edgecolor = 'black', alpha = 1.0, zorder=200) # plot the CDF points\n",
    "\n",
    "    plt.annotate('x = ' + str(round(por[data_index-1],2)), xy=(por[data_index-1]+0.01, 0.01))\n",
    "    plt.annotate('p = ' + str(round(cprob[data_index-1],2)), xy=(0.225, cprob[data_index-1]+0.02))\n",
    "\n",
    "    plt.subplot(132)\n",
    "    plt.plot(y,cprob, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "    plt.scatter(y,cprob,s = 20, alpha = 1.0, c = 'blue', edgecolor = 'black') # plot the CDF points\n",
    "    plt.grid(); plt.xlim([-3.0,3.0]); plt.ylim([0.0,1.0])\n",
    "    plt.xlabel(\"Gaussian Transformed Feature, $y$\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"CDF After Distribution Transformation to Gaussian\")\n",
    "    plt.plot([-3.0,y[data_index-1]],[cprob[data_index-1],cprob[data_index-1]],color = 'blue',linestyle='dashed')\n",
    "    plt.plot([y[data_index-1],y[data_index-1]],[0.0,cprob[data_index-1]],color = 'blue',linestyle='dashed')\n",
    "    plt.scatter(y[data_index-1],0,marker='v',s = 100, c = 'blue', edgecolor = 'black', alpha = 1.0, zorder=200) # plot the CDF points\n",
    " \n",
    "    plt.annotate('p = ' + str(round(cprob[data_index-1],2)), xy=(-2.90, cprob[data_index-1]+0.02)) \n",
    "    plt.annotate('y = ' + str(round(y[data_index-1],2)), xy=(y[data_index-1]+0.3, 0.01))\n",
    "    \n",
    "    plt.subplot(133)\n",
    "    plt.plot(por,y, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "    plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([-3.0,3.0])\n",
    "    plt.xlabel(\"Original Porosity (fraction)\"); plt.ylabel(\"Gaussian Transformed Porosity (N[fraction])\"); plt.title(\"Q-Q Plot, Distribution Transformation\")\n",
    "    #plt.plot([0.05,0.25],[0.05,0.25],color = 'red',linestyle='dashed', alpha = 0.4)\n",
    "    plt.plot([por[data_index-1],por[data_index-1]],[-3,y[data_index-1]],color = 'red',linestyle='dashed')\n",
    "    plt.plot([0.05,por[data_index-1]],[y[data_index-1],y[data_index-1]],color = 'blue',linestyle='dashed')\n",
    "    \n",
    "    plt.scatter(por[data_index-1],y[data_index-1],marker='+',s = 700, c = 'purple', edgecolor = 'black', alpha = 1.0, zorder=200) # plot the CDF points\n",
    "    plt.scatter(por[data_index-1],y[data_index-1],marker='x',s = 500, c = 'purple', edgecolor = 'black', alpha = 1.0, zorder=200) # plot the CDF points\n",
    "    plt.scatter(por[data_index-1],y[data_index-1],s = 200, c = 'purple', edgecolor = 'black', alpha = 1.0, zorder=200) # plot the CDF points\n",
    "    plt.scatter(por,y,s = 20, c = 'purple', edgecolor = 'black', alpha = 0.7, zorder=100) # plot the CDF points\n",
    "    plt.scatter(por[data_index-1],-3,marker='s',s = 100, c = 'red', edgecolor = 'black', alpha = 1.0, zorder=200) # plot the CDF points\n",
    "    plt.scatter(0.05,y[data_index-1],marker='s',s = 100, c = 'blue', edgecolor = 'black', alpha = 1.0, zorder=200) # plot the CDF points\n",
    " \n",
    "    plt.subplots_adjust(left=0.0, bottom=0.0, right=3.0, top=1.1, wspace=0.2, hspace=0.2)\n",
    "    plt.show()\n",
    "    \n",
    "# connect the function to make the samples and plot to the widgets    \n",
    "interactive_plot = widgets.interactive_output(run_plot, {'data_index':data_index})\n",
    "interactive_plot.clear_output(wait = True)               # reduce flickering by delaying plot updating"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Interactive Data Analytics Distribution Transformation Demonstration \n",
    "\n",
    "#### Michael Pyrcz, Associate Professor, The University of Texas at Austin \n",
    "\n",
    "Select any data value and observe the distribution transform by mapping through cumulative probability.\n",
    "\n",
    "### The Inputs\n",
    "\n",
    "* **data_index** - the data index from 1 to n in the sorted ascending order"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a0403a7a84d84092910e9c68a3882617",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "VBox(children=(Text(value='                                                  Data Analytics, Distribution Tran…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d3a1e6b36668401bafe0840632e906b5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(ui, interactive_plot)                           # display the interactive plot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Distribution Transform to a Non-Parametric Distribution\n",
    "\n",
    "We can apply the mapping through cumulative probabilities to transform from any distribution to any other distribution.\n",
    "\n",
    "* let's make a new data set by randomly sampling from the previous one and adding error\n",
    "\n",
    "Then we can demonstrate transforming this dataset to match the original distribution\n",
    "\n",
    "* this is mimicking the situation where we transform a dataset to match the distribution of a better sampled analog distribution\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The sample ndarray has a shape of (30,).\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_sample = 30\n",
    "df_sample = df.sample(n_sample,random_state = seed)\n",
    "                      \n",
    "df_sample = df_sample.copy(deep = True) # make a deepcopy of the feature from the DataFrame\n",
    "\n",
    "df_sample['Porosity'] = df_sample['Porosity'].values + np.random.normal(loc = 0.0, scale = 0.01, size = n_sample)\n",
    "\n",
    "df_sample = df_sample.sort_values(by = 'Porosity')                # sort the DataFrame\n",
    "por_sample = df_sample['Porosity'].values\n",
    "print('The sample ndarray has a shape of ' + str(por_sample.shape) + '.')\n",
    "\n",
    "cprob_sample = np.zeros(n_sample)\n",
    "for i in range(0,n_sample):\n",
    "    index = i + 1\n",
    "    cprob_sample[i] = index / n_sample       # known upper tail\n",
    "    # cprob[i] = (index - 1)/n               # known lower tail\n",
    "    # cprob[i] = (index - 1)/(n - 1)         # known upper and lower tails\n",
    "    # cprob[i] = index/(n+1)                 # unknown tails  \n",
    "\n",
    "plt.subplot(121)\n",
    "plt.plot(por_sample,cprob_sample, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "plt.scatter(por_sample,cprob_sample,s = 30, alpha = 1.0, c = 'red', edgecolor = 'black') # plot the CDF points\n",
    "plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"Sparse Sample with Noise Cumulative Distribution Function\")\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(por,cprob, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "plt.scatter(por,cprob,s = 30, alpha = 1.0, c = 'blue', edgecolor = 'black') # plot the CDF points\n",
    "plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"Non-parametric Porosity Cumulative Distribution Function\")\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=2.0, top=1.2, wspace=0.2, hspace=0.2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's transform the values and show them on the target distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_sample = np.zeros(n_sample)\n",
    "\n",
    "for i in range(0,n_sample):\n",
    "    y_sample[i] = np.percentile(por,cprob_sample[i]*100, interpolation = 'linear') # piecewise linear interpolation of inverse of target CDF \n",
    "    \n",
    "plt.subplot(121)\n",
    "plt.plot(por_sample,cprob_sample, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "plt.scatter(por_sample,cprob_sample,s = 30, alpha = 1.0, c = 'red', edgecolor = 'black', zorder = 100) # plot the CDF points\n",
    "plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"Sparse Sample with Noise Cumulative Distribution Function\")\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(por,cprob, alpha = 0.6,c = 'black') # plot piecewise linear interpolation\n",
    "plt.scatter(por,cprob,s = 20, c = 'red', edgecolor = 'black', alpha = 0.6) # plot the CDF points\n",
    "plt.scatter(y_sample,cprob_sample,s = 60, c = 'white', alpha = .7, zorder = 99) # plot the CDF points\n",
    "plt.scatter(y_sample,cprob_sample,s = 30, c = 'blue', edgecolor = 'black', alpha = 1.0, zorder = 100) # plot the CDF points\n",
    "plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"Non-parametric Porosity Cumulative Distribution Function\")\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=2.0, top=1.2, wspace=0.2, hspace=0.2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's make an interactive version of this plot to visualize the transformation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# widgets and dashboard\n",
    "l_sample = widgets.Text(value='                                                  Data Analytics, Distribution Transformation, Prof. Michael Pyrcz, The University of Texas at Austin',layout=Layout(width='950px', height='30px'))\n",
    "\n",
    "data_index_sample = widgets.IntSlider(min=1, max = n_sample, value=1.0, step = 1.0, description = 'Data Sample Index, $\\\\beta$',orientation='horizontal', style = {'description_width': 'initial'}, continuous_update=False)\n",
    "\n",
    "ui_sample = widgets.VBox([l_sample,data_index_sample],)\n",
    "\n",
    "def run_plot_sample(data_index_sample):                       # make data, fit models and plot\n",
    "    plt.subplot(131)\n",
    "    plt.plot(por_sample,cprob_sample, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "    plt.scatter(por_sample,cprob_sample,s = 30, alpha = 1.0, c = 'red', edgecolor = 'black',zorder = 100) # plot the CDF points\n",
    "    plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "    plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"Original Sparse Sample with Noise, Cumulative Distribution Function\")\n",
    "    plt.plot([por_sample[data_index_sample-1],por_sample[data_index_sample-1]],[0.0,cprob_sample[data_index_sample-1]],color = 'red',linestyle='dashed')\n",
    "    plt.plot([por_sample[data_index_sample-1],3.0],[cprob_sample[data_index_sample-1],cprob_sample[data_index_sample-1]],color = 'red',linestyle='dashed')\n",
    "    plt.annotate('x = ' + str(round(por_sample[data_index_sample-1],2)), xy=(por_sample[data_index_sample-1]+0.003, 0.01))\n",
    "    plt.annotate('p = ' + str(round(cprob_sample[data_index_sample-1],2)), xy=(0.225, cprob_sample[data_index_sample-1]+0.02))\n",
    "    \n",
    "    plt.subplot(132)\n",
    "    plt.plot(por,cprob, alpha = 0.2, c = 'black') # plot piecewise linear interpolation\n",
    "    plt.scatter(por,cprob,s = 30, c = 'blue', edgecolor = 'black', alpha = 1.0) # plot the CDF points\n",
    "    plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.0,1.0])\n",
    "    plt.xlabel(\"Porosity (fraction)\"); plt.ylabel(\"Cumulative Probability\"); plt.title(\"Non-parametric Target Porosity Cumulative Distribution Function\")\n",
    "    plt.plot([0.0,y_sample[data_index_sample-1]],[cprob_sample[data_index_sample-1],cprob_sample[data_index_sample-1]],color = 'blue',linestyle='dashed')\n",
    "    plt.plot([y_sample[data_index_sample-1],y_sample[data_index_sample-1]],[0.0,cprob_sample[data_index_sample-1]],color = 'blue',linestyle='dashed')\n",
    "    plt.annotate('p = ' + str(round(cprob_sample[data_index_sample-1],2)), xy=(0.053, cprob_sample[data_index_sample-1]+0.02)) \n",
    "    plt.annotate('y = ' + str(round(y_sample[data_index_sample-1],2)), xy=(y_sample[data_index_sample-1]+0.003, 0.01))\n",
    "    plt.scatter(y_sample[data_index_sample-1],cprob_sample[data_index_sample-1],s = 200, c = 'white', alpha = 1.0, zorder=99) # plot the CDF points\n",
    "    plt.scatter(y_sample[data_index_sample-1],cprob_sample[data_index_sample-1],s = 70, c = 'blue', edgecolor = 'black', alpha = 1.0, zorder=100) # plot the CDF points\n",
    "    \n",
    "    plt.subplot(133)\n",
    "    plt.plot(por_sample,y_sample, alpha = 0.4, c = 'black') # plot piecewise linear interpolation\n",
    "    plt.grid(); plt.xlim([0.05,0.25]); plt.ylim([0.05,0.25])\n",
    "    plt.xlabel(\"Original Porosity (fraction)\"); plt.ylabel(\"Transformed Porosity (fraction)\"); plt.title(\"Q-Q Plot for a Non-parametric Distribution Transformation\")\n",
    "    plt.plot([0.05,0.25],[0.05,0.25],color = 'black',linestyle='dashed', alpha = 1.0)\n",
    "    plt.scatter(por_sample[data_index_sample-1],y_sample[data_index_sample-1],s = 120, c = 'white', alpha = 1.0, zorder=190) # plot the CDF points\n",
    "    plt.scatter(por_sample[data_index_sample-1],y_sample[data_index_sample-1],s = 80, c = 'purple', edgecolor = 'black', alpha = 1.0, zorder=200) # plot the CDF points\n",
    "    plt.scatter(por_sample,y_sample,s = 30, c = 'purple', edgecolor = 'black', alpha = 0.8, zorder=100) # plot the CDF points\n",
    "    plt.scatter(por_sample[data_index_sample-1],y_sample[data_index_sample-1],marker='+',s = 700, c = 'purple', edgecolor = 'black', alpha = 1.0, zorder=199) # plot the CDF points\n",
    "    plt.scatter(por_sample[data_index_sample-1],y_sample[data_index_sample-1],marker='x',s = 500, c = 'purple', edgecolor = 'black', alpha = 1.0, zorder=199) # plot the CDF points\n",
    "  \n",
    "\n",
    "    plt.subplots_adjust(left=0.0, bottom=0.0, right=3.0, top=1.2, wspace=0.2, hspace=0.2)\n",
    "    plt.show()\n",
    "     \n",
    "# connect the function to make the samples and plot to the widgets    \n",
    "interactive_plot_s = widgets.interactive_output(run_plot_sample, {'data_index_sample':data_index_sample})\n",
    "#interactive_plot_sample.clear_output(wait = True)               # reduce flickering by delaying plot updating"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Interactive Data Analytics Distribution Transformation Demonstration \n",
    "\n",
    "#### Michael Pyrcz, Associate Professor, The University of Texas at Austin \n",
    "\n",
    "Select any data value and observe the distribution transform by mapping through cumulative probability.\n",
    "\n",
    "#### The Inputs\n",
    "\n",
    "* **data_index** - the data index from 1 to n in the sorted ascending order"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3ae03813bb2c4e93aeb700eb7e6fbb6c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "VBox(children=(Text(value='                                                  Data Analytics, Distribution Tran…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a0b2079ef12e434fb41cf4773ec61f38",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(ui_sample, interactive_plot_s)                           # display the interactive plot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To summarize let's look at a DataFrame with the original noisey sample and the transformed to match the original distribution.\n",
    "\n",
    "* we're making and showing a table of original values, $x_{\\beta}$ $\\forall$ $\\beta = 1, \\ldots, n_{sample}$, and the transformed values, $y_{\\beta}$ $\\forall$ $\\beta = 1, \\ldots, n_{sample}$.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X</th>\n",
       "      <th>Y</th>\n",
       "      <th>Facies</th>\n",
       "      <th>Porosity</th>\n",
       "      <th>Perm</th>\n",
       "      <th>AI</th>\n",
       "      <th>Transformed_Por</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>900.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.078139</td>\n",
       "      <td>1.280257</td>\n",
       "      <td>4573.656072</td>\n",
       "      <td>0.081044</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>207</th>\n",
       "      <td>201.0</td>\n",
       "      <td>426.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.099933</td>\n",
       "      <td>0.400658</td>\n",
       "      <td>5263.542112</td>\n",
       "      <td>0.085867</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>100.0</td>\n",
       "      <td>600.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.102014</td>\n",
       "      <td>2.446678</td>\n",
       "      <td>5201.637996</td>\n",
       "      <td>0.091834</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>500.0</td>\n",
       "      <td>400.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.104302</td>\n",
       "      <td>6.312198</td>\n",
       "      <td>5515.918646</td>\n",
       "      <td>0.095628</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>218</th>\n",
       "      <td>251.0</td>\n",
       "      <td>416.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.111108</td>\n",
       "      <td>1.003374</td>\n",
       "      <td>5822.467914</td>\n",
       "      <td>0.099378</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>226</th>\n",
       "      <td>211.0</td>\n",
       "      <td>396.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.112444</td>\n",
       "      <td>6.368529</td>\n",
       "      <td>5725.334803</td>\n",
       "      <td>0.101987</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>600.0</td>\n",
       "      <td>700.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.113304</td>\n",
       "      <td>12.384496</td>\n",
       "      <td>3595.586977</td>\n",
       "      <td>0.103970</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>210</th>\n",
       "      <td>231.0</td>\n",
       "      <td>426.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.114971</td>\n",
       "      <td>5.584040</td>\n",
       "      <td>4919.074871</td>\n",
       "      <td>0.106704</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>189</th>\n",
       "      <td>201.0</td>\n",
       "      <td>456.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.115299</td>\n",
       "      <td>0.546396</td>\n",
       "      <td>5018.355476</td>\n",
       "      <td>0.108460</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>100.0</td>\n",
       "      <td>400.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.120576</td>\n",
       "      <td>3.691908</td>\n",
       "      <td>5295.267191</td>\n",
       "      <td>0.111491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>900.0</td>\n",
       "      <td>900.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.120786</td>\n",
       "      <td>12.433996</td>\n",
       "      <td>6242.704810</td>\n",
       "      <td>0.113887</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>800.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.139345</td>\n",
       "      <td>7.739105</td>\n",
       "      <td>5274.532660</td>\n",
       "      <td>0.117984</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>600.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.146009</td>\n",
       "      <td>42.396044</td>\n",
       "      <td>4204.150893</td>\n",
       "      <td>0.121592</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>165</th>\n",
       "      <td>955.0</td>\n",
       "      <td>469.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.175355</td>\n",
       "      <td>26.197239</td>\n",
       "      <td>2889.196647</td>\n",
       "      <td>0.127131</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>245</th>\n",
       "      <td>690.0</td>\n",
       "      <td>529.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.179410</td>\n",
       "      <td>316.905689</td>\n",
       "      <td>4271.013148</td>\n",
       "      <td>0.137062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>151</th>\n",
       "      <td>995.0</td>\n",
       "      <td>489.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.181649</td>\n",
       "      <td>460.494986</td>\n",
       "      <td>2792.804322</td>\n",
       "      <td>0.153759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>84</th>\n",
       "      <td>955.0</td>\n",
       "      <td>559.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.184025</td>\n",
       "      <td>74.215058</td>\n",
       "      <td>3386.182722</td>\n",
       "      <td>0.176536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>93</th>\n",
       "      <td>955.0</td>\n",
       "      <td>549.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.189082</td>\n",
       "      <td>374.298925</td>\n",
       "      <td>3181.557281</td>\n",
       "      <td>0.185270</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>925.0</td>\n",
       "      <td>539.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.189614</td>\n",
       "      <td>211.163296</td>\n",
       "      <td>3442.885245</td>\n",
       "      <td>0.188136</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>136</th>\n",
       "      <td>935.0</td>\n",
       "      <td>499.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.190983</td>\n",
       "      <td>523.287810</td>\n",
       "      <td>2579.032897</td>\n",
       "      <td>0.191655</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>111</th>\n",
       "      <td>955.0</td>\n",
       "      <td>529.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.193601</td>\n",
       "      <td>1113.971076</td>\n",
       "      <td>3177.635737</td>\n",
       "      <td>0.195998</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>174</th>\n",
       "      <td>955.0</td>\n",
       "      <td>459.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.195106</td>\n",
       "      <td>45.002088</td>\n",
       "      <td>3394.563038</td>\n",
       "      <td>0.198182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>158</th>\n",
       "      <td>975.0</td>\n",
       "      <td>479.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.197169</td>\n",
       "      <td>69.336576</td>\n",
       "      <td>2493.128177</td>\n",
       "      <td>0.199315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>125</th>\n",
       "      <td>1005.0</td>\n",
       "      <td>519.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.198837</td>\n",
       "      <td>54.667195</td>\n",
       "      <td>2577.714678</td>\n",
       "      <td>0.201943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>150</th>\n",
       "      <td>985.0</td>\n",
       "      <td>489.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.203183</td>\n",
       "      <td>73.133040</td>\n",
       "      <td>2672.294567</td>\n",
       "      <td>0.206934</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>181</th>\n",
       "      <td>935.0</td>\n",
       "      <td>449.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.203501</td>\n",
       "      <td>368.507601</td>\n",
       "      <td>4249.477923</td>\n",
       "      <td>0.209051</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>113</th>\n",
       "      <td>975.0</td>\n",
       "      <td>529.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.214610</td>\n",
       "      <td>1548.094062</td>\n",
       "      <td>3167.185377</td>\n",
       "      <td>0.211638</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>141</th>\n",
       "      <td>985.0</td>\n",
       "      <td>499.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.228755</td>\n",
       "      <td>68.276148</td>\n",
       "      <td>2547.526113</td>\n",
       "      <td>0.215686</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>149</th>\n",
       "      <td>975.0</td>\n",
       "      <td>489.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.236303</td>\n",
       "      <td>21.109085</td>\n",
       "      <td>2412.875330</td>\n",
       "      <td>0.224214</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>129</th>\n",
       "      <td>955.0</td>\n",
       "      <td>509.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.241784</td>\n",
       "      <td>1525.247066</td>\n",
       "      <td>2512.061434</td>\n",
       "      <td>0.242298</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          X      Y  Facies  Porosity         Perm           AI  \\\n",
       "80    900.0  100.0     0.0  0.078139     1.280257  4573.656072   \n",
       "207   201.0  426.0     0.0  0.099933     0.400658  5263.542112   \n",
       "3     100.0  600.0     0.0  0.102014     2.446678  5201.637996   \n",
       "41    500.0  400.0     0.0  0.104302     6.312198  5515.918646   \n",
       "218   251.0  416.0     0.0  0.111108     1.003374  5822.467914   \n",
       "226   211.0  396.0     0.0  0.112444     6.368529  5725.334803   \n",
       "47    600.0  700.0     0.0  0.113304    12.384496  3595.586977   \n",
       "210   231.0  426.0     0.0  0.114971     5.584040  4919.074871   \n",
       "189   201.0  456.0     0.0  0.115299     0.546396  5018.355476   \n",
       "5     100.0  400.0     0.0  0.120576     3.691908  5295.267191   \n",
       "72    900.0  900.0     0.0  0.120786    12.433996  6242.704810   \n",
       "71    800.0  100.0     0.0  0.139345     7.739105  5274.532660   \n",
       "53    600.0  100.0     1.0  0.146009    42.396044  4204.150893   \n",
       "165   955.0  469.0     1.0  0.175355    26.197239  2889.196647   \n",
       "245   690.0  529.0     1.0  0.179410   316.905689  4271.013148   \n",
       "151   995.0  489.0     1.0  0.181649   460.494986  2792.804322   \n",
       "84    955.0  559.0     1.0  0.184025    74.215058  3386.182722   \n",
       "93    955.0  549.0     1.0  0.189082   374.298925  3181.557281   \n",
       "99    925.0  539.0     1.0  0.189614   211.163296  3442.885245   \n",
       "136   935.0  499.0     1.0  0.190983   523.287810  2579.032897   \n",
       "111   955.0  529.0     1.0  0.193601  1113.971076  3177.635737   \n",
       "174   955.0  459.0     1.0  0.195106    45.002088  3394.563038   \n",
       "158   975.0  479.0     1.0  0.197169    69.336576  2493.128177   \n",
       "125  1005.0  519.0     1.0  0.198837    54.667195  2577.714678   \n",
       "150   985.0  489.0     1.0  0.203183    73.133040  2672.294567   \n",
       "181   935.0  449.0     1.0  0.203501   368.507601  4249.477923   \n",
       "113   975.0  529.0     1.0  0.214610  1548.094062  3167.185377   \n",
       "141   985.0  499.0     1.0  0.228755    68.276148  2547.526113   \n",
       "149   975.0  489.0     1.0  0.236303    21.109085  2412.875330   \n",
       "129   955.0  509.0     1.0  0.241784  1525.247066  2512.061434   \n",
       "\n",
       "     Transformed_Por  \n",
       "80          0.081044  \n",
       "207         0.085867  \n",
       "3           0.091834  \n",
       "41          0.095628  \n",
       "218         0.099378  \n",
       "226         0.101987  \n",
       "47          0.103970  \n",
       "210         0.106704  \n",
       "189         0.108460  \n",
       "5           0.111491  \n",
       "72          0.113887  \n",
       "71          0.117984  \n",
       "53          0.121592  \n",
       "165         0.127131  \n",
       "245         0.137062  \n",
       "151         0.153759  \n",
       "84          0.176536  \n",
       "93          0.185270  \n",
       "99          0.188136  \n",
       "136         0.191655  \n",
       "111         0.195998  \n",
       "174         0.198182  \n",
       "158         0.199315  \n",
       "125         0.201943  \n",
       "150         0.206934  \n",
       "181         0.209051  \n",
       "113         0.211638  \n",
       "141         0.215686  \n",
       "149         0.224214  \n",
       "129         0.242298  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_sample['Transformed_Por'] = y_sample\n",
    "df_sample.head(n=n_sample)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It would be straitforward to modify the code above to perform distribution transformations:\n",
    "\n",
    "* to a parametric distribution like Gaussian\n",
    "\n",
    "* to a non-parametric distribution from actual data (build a CDF and interpolate between the data samples)\n",
    "\n",
    "#### Comments\n",
    "\n",
    "This was a basic demonstration of distribution transformations. \n",
    "\n",
    "I have other demonstrations on the basics of working with DataFrames, ndarrays, univariate statistics, plotting data, declustering, data transformations, trend modeling and many other workflows available at [Python Demos](https://github.com/GeostatsGuy/PythonNumericalDemos) and a Python package for data analytics and geostatistics at [GeostatsPy](https://github.com/GeostatsGuy/GeostatsPy). \n",
    "  \n",
    "I hope this was helpful,\n",
    "\n",
    "*Michael*\n",
    "\n",
    "#### The Author:\n",
    "\n",
    "### Michael Pyrcz, Associate Professor, University of Texas at Austin \n",
    "*Novel Data Analytics, Geostatistics and Machine Learning Subsurface Solutions*\n",
    "\n",
    "With over 17 years of experience in subsurface consulting, research and development, Michael has returned to academia driven by his passion for teaching and enthusiasm for enhancing engineers' and geoscientists' impact in subsurface resource development. \n",
    "\n",
    "For more about Michael check out these links:\n",
    "\n",
    "#### [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)\n",
    "\n",
    "#### Want to Work Together?\n",
    "\n",
    "I hope this content is helpful to those that want to learn more about subsurface modeling, data analytics and machine learning. Students and working professionals are welcome to participate.\n",
    "\n",
    "* Want to invite me to visit your company for training, mentoring, project review, workflow design and / or consulting? I'd be happy to drop by and work with you! \n",
    "\n",
    "* Interested in partnering, supporting my graduate student research or my Subsurface Data Analytics and Machine Learning consortium (co-PIs including Profs. Foster, Torres-Verdin and van Oort)? My research combines data analytics, stochastic modeling and machine learning theory with practice to develop novel methods and workflows to add value. We are solving challenging subsurface problems!\n",
    "\n",
    "* I can be reached at mpyrcz@austin.utexas.edu.\n",
    "\n",
    "I'm always happy to discuss,\n",
    "\n",
    "*Michael*\n",
    "\n",
    "Michael Pyrcz, Ph.D., P.Eng. Associate Professor The Hildebrand Department of Petroleum and Geosystems Engineering, Bureau of Economic Geology, The Jackson School of Geosciences, The University of Texas at Austin\n",
    "\n",
    "#### More Resources Available at: [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
